//--------------------------------------------------------------------

/*
添加好友功能
1,点击添加按钮 请求对方是否设置了加好友权限
(uid（待添加好友的uid）
->
setting_addfrd[said,uid,deftype,question]
(table)setting_addfrd:deftype(权限 0直接添加(默认，一般对没有设置添加权限或对方【无论有没有设置权限】已加你但你没有加对方，都为0) 1介绍自我验证 2回答正确回答问题 3回答多个问题待好友审核)
->
(table)setting_addfrd:question(deftype0为空，deftype1为分号分隔的2个字符串[问题;标准答案]，deftype2为分号分隔的多个字符串[问题1;问题2;问题3;...])
)

（如果deftype1，保存标准答案，待我方填答案后判断是否正确）

2,根据对方设置的权限填写完信息后，提交到
	添加好友表（table）addfrdmsg[aflid,ownid,frdid,answer,reason,isread=0(给好友看的),add_or_not=-1,done=0(给我方轮询看的)]
	待添加好友阅读此信息后(isread=1)，判断是否添加你为好友(add_or_not)

	两方的网页轮询或隔询会拉取本条加好友消息，好友方isread=1则不再读取,我方done=1则不再读取

	如果点击添加按钮:
	好友方:则弹出该好友的分组，判断将你加入到哪个分组，再插入到frd表，并动态插入网页
	我方:轮询或隔询拉取到add_or_not=1,则插入frd表，并动态插入网页
	如果拒绝:
	好友方:isread=1,add_or_not=0,提交拒绝理由reason="XXXX",不再读取
	我方:轮询或隔询收到拒绝提示，并显示拒绝理由reason ,可以再次添加，重复上述步骤
*/




function ValidateBox(uid)
{
	var uid=uid;
	var user=usr.getuser(uid);
	this.init=function(frdobj)
	{
		//this.uid=uid;
		_createbox(frdobj);
		_bind();
	}
	
	var _createbox=function(frdobj)
	{
		if($("#addfrdbox_"+frdobj.id+"_"+uid).length>0)
		{
			return false;
		}
		//添加主体框
		$('body').append(
		'<div class="addfrdbox owner_'+uid+'" id="addfrdbox_'+frdobj.id+'_'+uid+'">'+
		'<div class="addfrdbar">'+
		'<div class="bar_color theme_color_'+uid+' theme_op_'+uid+'"></div>'+
		'<div class="bar_content">'+
		'<div class="addfrdbarname"><img src="img/all_logo16-xp-2014.ico"/> 辣椒哥&nbsp;-&nbsp;添加好友</div>'+
		'<div class="addfrdclose"></div>'+
		'<div class="addfrdtiny"></div>'+
		'<div class="clear"></div>'+
		'</div>'+
		'</div>'+
		'<!---中部内容框--->'+
		'<div class="addfrdcntboard">'+
		'<!---左侧待添加好友信息--->'+
		'<div class="readyaddwho theme_color_'+uid+'">'+
		'<div class="readyaddwhite"></div>'+
		'<div class="readyaddcolor">'+
		'<div class="readyaddcolor1"></div>'+
		'<div class="readyaddcolor2"></div>'+
		'</div>'+
		'<div class="useraddmsg">'+
		'<div class="addimghead"><img src="'+frdobj.img100+'"/></div>'+
		'<div class="adddetail">'+
		'<ul>'+
		'<li class="b">'+frdobj.name+'</li>'+
		'<li class="black">'+frdobj.account+'</li>'+
		'<li class="light">性别：'+(frdobj.sex=='male'?'男':'女')+'</li>'+
		'<li class="light">年龄：'+(frdobj.birthday==0?0:(new Date().getFullYear()-new Date(frdobj.birthday*1000).getFullYear()))+' 岁</li>'+
		'<li class="light">所在地：'+(frdobj.livetown==""?frdobj.hometown:frdobj.livetown)+'</li>'+
		'</ul>'+	
		'</div>'+
		'</div>'+
		'<div class="clear"></div>'+
		'</div><!---左侧待添加好友信息结束--->'+
		'<!---右侧验证内容栏--->'+
		'<div class="add_operation">'+
		'<!--加载中图片-->'+
		'<div class="loadingtips1"></div>'+
		'</div><!---右侧验证内容栏结束--->'+
		'</div><!--中部内容框结束-->'+
		'<div class="gotoaddfrd theme_color_'+uid+'">'+
		'<div class="gotoaddfrdwhite"></div>'+
		'<div class="gotoaddfrdcnt">'+
		'<div class="donebtn">完成</div>'+
		'<div class="closebtn">关闭</div>'+
		'<div class="cancelbtn">取消</div>'+
		'<div class="nextbtn selectbtn">下一步</div>'+	
		'</div>'+
		'</div>'+
		'</div>'
		);
		var th=usr.getpro(uid,'theme');
		$('#addfrdbox_'+frdobj.id+'_'+uid+' .theme_color_'+uid).css('background',th['bgcolor']);
		$('#addfrdbox_'+frdobj.id+'_'+uid+' .theme_op_'+uid).css("filter","alpha(opacity="+th['skinopacity']+")").css("-moz-opacity",(th['skinopacity']/100)).css("opacity",(th['skinopacity']/100));
		_setvalidatemsg(uid,frdobj.id);


	}

	//加载初始验证信息
	function _setvalidatemsg(uid,fid)
	{
		var opcnt=$("#addfrdbox_"+fid+"_"+uid+" .add_operation");
		var btncnt=$("#addfrdbox_"+fid+"_"+uid+" .gotoaddfrd");
		//console.log(opcnt);
		//console.log(btncnt);
		_ajax(uid,fid,'getval','i=addvalidate,addvalidate_question',function(msg)
		{
			
			if(msg!="no")
			{
				var valtype=parseInt(msg['addvalidate']);
				var valques=msg['addvalidate_question'];
				

				if(valtype==2)
				{
					opcnt.html(
					'<div class="validate1">'+
					'<p>请输入验证信息:</p>'+
					'<textarea class="myintro">我是</textarea>'+
					'</div>'	
					);
					btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt validating");
					
					$(".gotoaddfrdcnt>.nextbtn").click(function()
					{
						var validate=$(this).parents(".addfrdbox").find(".validate1 .myintro").val();
						
						//跳到下一页
						_createaddset(opcnt,btncnt,uid,fid,validate,'1');
					});
				}
				else if(valtype==3)
				{
					opcnt.html(
					'<div class="validate2">'+
					'<p>对方需要您回答一下验证问题:</p>'+
					'<div class="question_only">'+valques+'?</div>'+
					'<input type="text" class="v2answer"/>'+
					'<div class="isright"></div></div>'
					);
					btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt validating");
					$(".gotoaddfrdcnt>.nextbtn").click(function()
					{
						var v2=$(this).parents(".addfrdbox").find(".validate2");
						var validate=v2.find(".v2answer").val();
						var tipboard=$(this).parents(".addfrdbox").find(".validate2 .isright");

						//判断答案是否为空
						if(validate.length<=0)
						{
							//提示问题的回答不能为空
							tipboard.html('问题回答不能为空');
							return;
						}
						tipboard.html('');
						//提交答案，查看是否正确
						_ajax(uid,fid,'judge','an='+validate,function(msg)
						{
							if(msg=='ok')
							{
								//跳到下一页
								_createaddset(opcnt,btncnt,uid,fid,validate,'');
							}
							else
							{
								tipboard.html('答案错误!');
							}
						},function()
						{
							tipboard.html('网络连接失败!');
						});

						
					});

				}
				else if(valtype==4)
				{
					var qarr=valques.split(";");
					for(var i=0;i<qarr.length;i++)
					{
						if(qarr[i].length<=0)
						{
							qarr.remove(i);
						}
					}

					var qs='';
					for(var i=0;i<qarr.length;i++)
					{
						qs+='<li>问题'+(i+1)+':&nbsp;&nbsp;'+qarr[i]+'?<input type="text" name="v3answer_'+(i+1)+'"/></li>';
					}
					opcnt.html(
					'<div class="validate3">'+
					'<p>对方需要您回答'+qarr.length+'个验证问题:</p>'+
					'<ul>'+
					qs+		
					'</ul>'+
					'</div>'
					);
					btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt validating");

					$(".gotoaddfrdcnt>.nextbtn").click(function()
					{
						var v3=$(this).parents(".addfrdbox").find(".validate3");
						//var validate=v3.find("input[name='v3answer_"+i+"']").val();

						var validate='';
						//判断答案是否为空
						for(var i=1;i<=qarr.length;i++)
						{
							var vstr=v3.find("input[name='v3answer_"+i+"']").val();
							if(vstr.length<=0)
							{

								//提示问题的回答不能为空

								console.log('第'+i+'个问题不能为空');

								return;
							}
							else
							{
								validate+=vstr+';';
							}
						}
						
						console.log('v3的validate='+validate);
						//跳到下一页
						_createaddset(opcnt,btncnt,uid,fid,validate,'1');
					});

				}
				else if(valtype==1)
				{
					//跳到下一页
					_createaddset(opcnt,btncnt,uid,fid,'','2');
				}
				else
				{
					opcnt.html('<div class="validate_fail valctrl"><div class="failtips"></div><div class="reget_validate">重新加载</div></div>');
					btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt doneadd");
				}
				

			}
			else
			{
				//提示找不到好友验证信息
				opcnt.html('<div class="validate_fail valctrl"><div class="failtips"></div><div class="reget_validate">重新加载</div></div>');
				btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt doneadd");
			}

		},function()
		{
			//提示网络连接失败
			opcnt.html('<div class="validate_fail valctrl"><div class="failtips"></div><div class="reget_validate">重新加载</div></div>');
			btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt doneadd");
		});
	}


	//创建保存设置页
	function _createaddset(opcnt,btncnt,uid,fid,vali,type)
	{
		var vali=vali;

		//获取所有组
		var gps=usr.getpro(uid,'frdgrp');
		//如果没有分组，则是默认‘我的好友’分组
		var selectstr='<option value="0">我的好友</option>';
		if(gps.length>0)
		{
			for(var i=0;i<gps.length;i++)
			{
				selectstr+='<option value="'+gps[i].id+'">'+gps[i].gname+'</option>';
			}
		}
		opcnt.html(
		'<div class="addset">'+
		'<div class="bakname">备注姓名:&nbsp;<input type="text" name="frdbakname" value="选填"/></div>'+
		'<div class="togrp">分&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;组:'+
		'<span class="addfrdselectgrp">'+
		'<select name="selectgrp">'+
		selectstr+
		'</select>'+
		'</span>'+
		'<a href="javascript:;" class="appendnewgrp">新建分组</a></div>'+
		'<div class="acc_or_not"><div class="addset_checkbox checked" value="not_allow_acc_space"></div>不允许此人访问我的空间</div>'+
		'</div>'
		);
		
		btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt validating_set");

		

		//绑定本页面组件的部分事件

		//备注输入框事件
		$(".addset input[name='frdbakname']").click(function()
		{
			if($.trim($(this).val())=="选填")
			{
				$(this).val('');
			}
		}).focusout(function()
		{
			if($.trim($(this).val())=="")
			{
				$(this).val('选填');
			}
		});
		//是否允许查看我的空间点选框
		$('.addset>.acc_or_not').click(function()
		{
			var cb=$(this).find(".addset_checkbox");
			var acc=0;
			if(cb.hasClass("checked"))
			{
				cb.removeClass("checked");
				acc=1;
			}
			else
			{
				cb.addClass('checked');
			}
		});
		//新建分组按钮
		$(".appendnewgrp").click(function()
		{
			new Addgrpbox().init(uid,fid);
		});

		btncnt.find(".gotoaddfrdcnt>.nextbtn").unbind('click');
		btncnt.find(".gotoaddfrdcnt>.nextbtn").click(function()
		{
			//显示正在添加好友
			opcnt.find('.addset').append('<div class="sendaddmsgloading"><img src="img/AddGroup/loading2.gif"/>正在添加好友</div>');
			var box=$(this).parents(".addfrdbox");
			//获取所需信息
			
			var bakname=$.trim(box.find(".addset input[name='frdbakname']").val());
			bakname=="选填"?bakname='':'';
			var togrp=box.find(".addfrdselectgrp>select>option:selected").val();
			var accornot=box.find('.addset>.acc_or_not>.checked').length;
			//发送好友请求信息
			
			_ajax(uid,fid,'add','val='+vali+"&&bak="+bakname+"&&tg="+togrp+"&&aon="+accornot+'&&flag='+type,function(msg)
			{
				if(msg=='ok')
				{
					//创建提示页
					_createdoneadd(opcnt,btncnt,uid,type);
				}
				else
				{
					//提示网络连接失败
					console.log('----添加验证失败----');
					console.log(opcnt[0]);
					console.log(btncnt[0]);
					opcnt.html('<div class="validate_fail valctrl"><img src="img/Safe/sysmessagebox_warningFile.png"/>添加验证失败!</div>');
					btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt doneadd");
					opcnt.find('.valctrl').css('display','block');
				}
			
			},function()
			{
				//提示网络连接失败
				opcnt.html('<div class="validate_fail valctrl"><div class="failtips"></div><div class="reget_validate">重新加载</div></div>');
				btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt doneadd");
				opcnt.find('.valctrl').css('display','block');
			});
			
		});

	}

	//创建已发送好友请求,等待好友通过/添加好友成功提示页
	function _createdoneadd(opcnt,btncnt,uid,type)
	{
		var tips=type=='1'?'您的好友添加请求已经发送成功，正在等待对方确认。':'您已成功添加<font>'+(opcnt.siblings('.readyaddwho').find('.b').html())+'</font>为好友';
		

		var classname=type=='1'?'waitaddresult':'waitaddresult';

		opcnt.html(	
		'<div class="'+classname+'">'+
		'<div class="doneaddmsg">'+
		'<img src="img/AddGroup/success.png"/>'+
		'<!--您已向<font>叉烧包是爱你</font>发送添加好友请求，请耐心等待回复-->'+
		tips+
		'</div>'+
		'<div class="newfrds">'+
		'<div class="headtool">'+
		'<div class="title">您可能还认识这些人:</div>'+
		'<div class="switchnew">换一批</div>'+
		'</div>'+
		'<div class="new4frd">'+
		
		/*
		'<ul>'+
		'<li class="fid">'+
		'<div class="newimghead"><img src="img/user48.png"/></div>'+
		'<div class="newfrdname">根据头像大小判断margin,头像小于等于60*60</div>'+
		'<div class="newaddbtn"><font>+</font>加好友</div>'+
		'</li>'+
		'</ul>'+
		*/
		'</div>'+
		'</div>'+
		'</div>'
		);
		btncnt.find(".gotoaddfrdcnt").attr("class","gotoaddfrdcnt doneadd");
	}




	var _bind=function()
	{
		drag($(".addfrdbox"));
		function close(e)
		{
			var addfrdbox=$(e.target).parents(".addfrdbox");
			var id=$(this).parents('.addfrdbox').attr("id").replace("addfrdbox","");
			if($("#addgrpbox"+id).length>0)
			{
				$("#addgrpbox"+id).remove();
			}
			//关闭对话框
			addfrdbox.remove();
		}
		//关闭按钮
		$(".addfrdbar>.addfrdclose").click(close);
		//关闭按钮
		$(".gotoaddfrdcnt>.closebtn").click(close);
		//完成按钮
		$(".gotoaddfrdcnt>.donebtn").click(close);
		//取消按钮
		$(".gotoaddfrdcnt>.cancelbtn").click(close);

		//最小化按钮
		$(".addfrdbar>.addfrdtiny").click(function()
		{
			$(this).parents('.addfrdbox').css('display','none');
			var id=$(this).parents('.addfrdbox').attr("id").replace("addfrdbox","");
			if($("#addgrpbox"+id).length>0)
			{
				$("#addgrpbox"+id).remove();
			}
		});

		$('.addfrdbox').click(function(e)
		{
			var id=$(this).attr("id").replace("addfrdbox","");
			if($("#addgrpbox"+id).length>0)
			{
				$("#addgrpbox"+id+" input[name='grpinput']")[0].focus();
				$("#goading")[0].play();
				e.stopImmediatePropagation();
				return false;
			}
		});






	}


	function _ajax(uid,fid,type,info,sfunc,efunc)
	{
		console.log("_add_frd");
		var o=
		{
			url:'action/frdvalidate.php',
			type:'POST',
			data:'u='+uid+'&&f='+fid+'&&t='+type+'&&'+info,
			dataType:'json',
			success:sfunc,
			error:efunc,
		}
		$.ajax(o);
	}





	function Addgrpbox()
	{
		this.init=function(uid,fid)
		{
			_create(uid,fid);
			_bindbox();
		}
		var _create=function(uid,fid)
		{
			if($("#addgrpbox_"+fid+"_"+uid).length>0)
			{
				$("#addgrpbox_"+fid+"_"+uid)[0].focus();
				return false;
			}
			$('body').append(		
			'<div class="addgrpbox" id="addgrpbox_'+fid+'_'+uid+'">'+
			'<div class="addgrpbar">'+
			'<div class="bar_color theme_color_'+uid+' theme_op_'+uid+'"></div>'+
			'<div class="bar_content">'+
			'<div class="addgrpbarname"><img src="img/all_logo16-xp-2014.ico"/>好友分组</div>'+
			'<div class="addgrpclose"></div>'+
			'</div>'+
			'</div>'+
			'<div class="grpcontent">'+
			'<p>分组名称:</p>'+
			'<input type="text" name="grpinput" class="addgrpinput"/>'+
			'</div>'+
			'<div class="gotoaddgrp theme_color_'+uid+'">'+
			'<div class="gotoaddgrpwhite"></div>'+
			'<div class="gotoaddgrpcnt">'+
			'<div class="addgrpcancelbtn">取消</div>'+
			'<div class="addgrpacceptbtn disable">确定</div>'+
			'</div>'+
			'</div>'+
			'</div>'
			);

			var t=$("#addfrdbox_"+fid+"_"+uid)[0].offsetTop;
			var l=$("#addfrdbox_"+fid+"_"+uid)[0].offsetLeft;
			$("#addgrpbox_"+fid+"_"+uid).css('top',(t+100)+"px").css('left',(l+70)+"px");

			var th=usr.getpro(uid,'theme');
			$("#addgrpbox_"+fid+"_"+uid).find('.theme_color_'+uid).css('background',th['bgcolor']);
			$("#addgrpbox_"+fid+"_"+uid).find('.theme_op_'+uid).css("filter","alpha(opacity="+th['skinopacity']+")").css("-moz-opacity",(th['skinopacity']/100)).css("opacity",(th['skinopacity']/100));
		}

		var _bindbox=function()
		{
			drag($('.addgrpbox'));
			$('.addgrpclose').click(function()
			{
				$(this).parents('.addgrpbox').remove();
			});
			$('.addgrpcancelbtn').click(function()
			{
				$(this).parents('.addgrpbox').remove();
			});
		

			$(".addgrpinput").keyup(function()
			{
				if($.trim($(this).val()).length>0)
				{
					$(this).parents('.addgrpbox').find('.addgrpacceptbtn').removeClass('disable');
				}
				else
				{
					$(this).parents('.addgrpbox').find('.addgrpacceptbtn').addClass('disable');
				}
			});

			$('.addgrpacceptbtn').click(function()
			{
				if($(this).hasClass('disable'))
				{
					$(this).parents('.addgrpbox').find('.addgrpinput')[0].focus();
					return false;
				}
				var str=$.trim($(this).parents('.addgrpbox').find('.addgrpinput').val());
				if(str.length<=0)
				{
					$(this).addClass('disable');
					$(this).parents('.addgrpbox').find('.addgrpinput')[0].focus();
					return false;
				}
				
				var aid=$(this).parents('.addgrpbox').attr('id');
				var reg=/addgrpbox_(\d+)_(\d+)/;
				var paid=reg.exec(aid);
				var uid=paid[2];
				var fid=paid[1];
				var pt=$(this).parents('.addgrpbox');

				//提交数据后马上解绑，防止多次点击提交
				$(this).addClass('disable').unbind('click');

				//提交新建分组数据并更改页面中分组情况
				_ajax(uid,fid,'addgrp','g='+str,function(msg)
				{
					if(msg!='no')
					{
						var gid=msg;
						//添加到全局对象数组中
						var oldgps=usr.getpro(uid,'frdgrp');
						oldgps.push({frdcount:'0',gname:str,id:gid,ownid:uid});
						usr.setpro(uid,'frdgrp',oldgps);

						//添加到选择框中
						$('#addfrdbox_'+fid+'_'+uid+' .addfrdselectgrp>select').append('<option value="'+gid+'" selected>'+str+'</option>');

						//添加到主面板中
						$("#ico_contacts_"+uid+" .contacts_page").append(
						'<div class="groups" id="frdgrp_'+gid+'">'+
						'<div class="grphead">'+
						'<div class="grp_putdown"><img src="img/mainpanel/0.png"/></div>'+
						'<div class="grpname">'+str+'</div>'+
						'<div class="frdsum">0/0</div>'+
						'<div class="clear"></div></div>'+
						'<div class="frdcontent"></div></div>'
						);
						$('#frdgrp_'+gid+' .grphead').click(function()
						{
							if($(this).next(".frdcontent").css("display")=="block")
							{
								$(this).find(".grp_putdown").html('<img src="img/mainpanel/0.png"/>');
								$(this).next(".frdcontent").css("display","none");
							}
							else
							{						
								$(this).find(".grp_putdown").html('<img src="img/mainpanel/90.png"/>');
								$(this).next(".frdcontent").css("display","block");
							}
						});
						pt.remove();
					}

				},function()
				{

				});
				


				
			});



		}
	}


}


